package com.project.util;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.multipart.MultipartFile;

/**
*@ProjectName:Pms
*@Date:2019年6月18日
*@ClassName:UploadImgUtil.java
*@Author:ThinkPad
*@Description:TODO (用一句话描述该文件做什么)
*@Version:版本
*@See：参考版本
**/
public class UploadImgUtil {
	
	/**
	 * 
	* @Method : uploadimg
	* @Description: 上传图片
	* @Author ThinkPad 作者
	* @Version 1.0
	* @param @param req
	* @param  MultipartFile 接受前台传过来的文件
	* @param    参数
	* @param    保存的文件夹名字
	* @return String    返回文件新名字
	* @Exception
	* @Date 2019年6月18日
	 */
	    @Value("${web.upload-path}")
		public static String uploadimg(HttpServletRequest req,MultipartFile ImgName) {
			
			//获取到tomcat的物理路径 将虚拟路径转化为物理路径
			ServletContext context = req.getServletContext();
			//String path = context.getRealPath("/upload");
			
			String path="D://pictures";			
			String	NewName=changeName(ImgName.getOriginalFilename());
			//将文件保存path里面,如果没有这个文件夹，就创建这个文件夹
			File file = new File(path,NewName);
			 if(!file.getParentFile().exists()){
				 file.getParentFile().mkdirs();
			 } 				 
				 try {
					 
					file.createNewFile();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			//将客户端传递过来的文件信息复制给path目录下面的文件
			try {
				ImgName.transferTo(file);
			} catch (IllegalStateException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return NewName;
		}
		
		/**
		 * 
		* @Method : changeName
		* @Description: 改变图片名
		* @Author ThinkPad 作者
		* @Version 1.0
		* @param @param name
		* @param @return    参数
		* @return String    返回类型
		* @Exception
		* @Date 2019年6月18日
		 */
		public  static String changeName(String name){
			
			String newName = UUID.randomUUID().toString()+"_"+name;
			
			return newName;
			}
}
